package com.workcell.workdata.xthings.entity.mqtt;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.workcell.workdata.xthings.constant.ExtOutputAttributes;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 上位机表
 * @TableName t_upper_computer_data
 */
@TableName(value ="t_upper_computer_data")
@Data
@Accessors(chain = true)
public class UpperComputerData implements Serializable {
    /**
     * 主键
     */
    private String id;

    /**
     * 主设备编码
     */
    private String masterDeviceNo;

    /**
     * 从设备编码
     */
    private String slaveDeviceNo;

    /**
     * 机器码
     */
    private String addressId;

    /**
     * 厂商编码
     */
    private String manufacturerCode;

	/**
	 * 进料瞬时流量(单位m³/h)
	 */
	@ExtOutputAttributes(key = "进料瞬时流量(单位m³/h)")
	private String instantaneousFlowFeed;

	/**
	 * 进料累计流量(单位m³)
	 */
	@ExtOutputAttributes(key = "进料累计流量(单位m³)")
	private String feedCumulativeFlow;

	/**
	 * 退料瞬时流量(单位m³/h)
	 */
	@ExtOutputAttributes(key = "退料瞬时流量(单位m³/h)")
	private String instantaneousFlowRetraction;

	/**
	 * 退料累计流量(单位m³)
	 */
	@ExtOutputAttributes(key = "退料累计流量(单位m³)")
	private String cumulativeFlowRetraction;

	/**
	 * 当前进料阀门开度(单位°)
	 */
	@ExtOutputAttributes(key = "当前进料阀门开度")
	private String currentFeedValveOpening;

	/**
	 * 当前退料阀门开度(单位°)
	 */
	@ExtOutputAttributes(key = "当前退料阀门开度")
	private String currentReturnValveOpening;

	/**
	 * 结晶罐液位(单位m)
	 */
	@ExtOutputAttributes(key = "结晶罐液位(单位m)")
	private String crystallizationTankLevel;

	/**
	 * 缓冲桶液位(单位m)
	 */
	@ExtOutputAttributes(key = "缓冲桶液位(单位m)")
	private String bufferTankLevel;

	/**
	 * 换热器出口管道温度(单位℃)
	 */
	@ExtOutputAttributes(key = "换热器出口管道温度(单位℃)")
	private String temperatureHeatExchangerOutletPipe;

	/**
	 * 循环泵出口压力（单位KPA）
	 */
	@ExtOutputAttributes(key = "循环泵出口压力（单位KPA）")
	private String circulatingPumpOutletPressure;


	 /**
	 * 进料阀门手动设定值
	 */
	@ExtOutputAttributes(key = "进料阀门手动设定值")
	private String manualSetpointFeedValve;

	/**
	 * 退料阀门手动设定值
	 */
	@ExtOutputAttributes(key = "退料阀门手动设定值")
	private String manualSetpointReturnValve;

	/**
	 * 结晶罐液位上限(单位m³/h)
	 */
	@ExtOutputAttributes(key = "结晶罐液位上限(单位m³/h)")
	private String upperCrystallizationTankLevel;

	/**
	 * 结晶罐液位下限(单位m³/h)
	 */
	@ExtOutputAttributes(key = "结晶罐液位下限(单位m³/h)")
	private String lowerCrystallizationTankLevel;

	/**
	 * 缓冲桶液位上限(单位m³/h)
	 */
	@ExtOutputAttributes(key = "缓冲桶液位上限(单位m³/h)")
	private String upperBufferTankLevel;

	/**
	 * 缓冲桶液位下限(单位m³/h)
	 */
	@ExtOutputAttributes(key = "缓冲桶液位下限(单位m³/h)")
	private String lowerBufferTankLevel;

	/**
	 * 结晶罐温度设定(单位℃)
	 */
//	@ExtOutputAttributes(key = "结晶罐温度设定(单位℃)")
	private String crystallizationTankTemperatureSet;

	/**
	 * 循环阀开到位
	 */
	@ExtOutputAttributes(key = "循环阀开到位")
	private String circulationValveOpen;

	/**
	 * 循环阀关到位
	 */
	@ExtOutputAttributes(key = "循环阀关到位")
	private String circulationValveClose;

	/**
	 * 回流阀开到位
	 */
	@ExtOutputAttributes(key = "回流阀开到位")
	private String returnValveOpen;

	/**
	 * 回流阀关到位
	 */
	@ExtOutputAttributes(key = "回流阀关到位")
	private String returnValveClose;

	/**
	 * 冷冻工站运行标志
	 */
	@ExtOutputAttributes(key = "冷冻工站运行标志")
	private String refrigerationStationOperateSign;

	/**
	 * 冷冻工站停止标志
	 */
	@ExtOutputAttributes(key = "冷冻工站停止标志")
	private String refrigerationStationStopSign;

	/**
	 * 冷冻工站就绪
	 */
	@ExtOutputAttributes(key = "冷冻工站就绪")
	private String refrigerationStationReadySign;

	/**
	 * 冷冻工站手动状态
	 */
	@ExtOutputAttributes(key = "冷冻工站手动状态")
	private String refrigerationStationManualStatus;

	/**
	 * 冷冻工站自动状态
	 */
	@ExtOutputAttributes(key = "冷冻工站自动状态")
	private String refrigerationStationAutoStatus;

	/**
	 * 串口通讯异常
	 */
	@ExtOutputAttributes(key = "串口通讯异常")
	private String serialCommunicateAbnormal;

	/**
	 * 循环阀异常
	 */
	@ExtOutputAttributes(key = "循环阀异常")
	private String circulationValveAbnormal;

	/**
	 * 进料流量异常
	 */
	@ExtOutputAttributes(key = "进料流量异常")
	private String feedFlowAbnormal;

	/**
	 * 退料流量异常
	 */
	@ExtOutputAttributes(key = "退料流量异常")
	private String returnFlowAbnormal;

	/**
	 * 进料阀门运算错误
	 */
	@ExtOutputAttributes(key = "进料阀门运算错误")
	private String feedValveMiscalculated;

	/**
	 * 退料阀门运算错误
	 */
	@ExtOutputAttributes(key = "退料阀门运算错误")
	private String returnValveMiscalculated;

	/**
	 * 回流阀异常
	 */
	@ExtOutputAttributes(key = "回流阀异常")
	private String refluxValveAbnormal;

	/**
	 * 进料阀异常
	 */
	@ExtOutputAttributes(key = "进料阀异常")
	private String feedValveAbnormal;

	/**
	 * 退料阀异常
	 */
	@ExtOutputAttributes(key = "退料阀异常")
	private String returnValveAbnormal;

	/**
	 * 急停中
	 */
	@ExtOutputAttributes(key = "急停中")
	private String emergencyStop;

	/**
	 * 远程操作中
	 */
	@ExtOutputAttributes(key = "远程操作中")
	private String remoteOperation;

	/**
	 * 循环泵状态
	 */
	@ExtOutputAttributes(key = "循环泵状态")
	private String circulatingPumpStatus;

	/**
	 * 退料泵状态
	 */
	@ExtOutputAttributes(key = "退料泵状态")
	private String returnPumpStatus;

	/**
	 * 晶浆泵状态
	 */
	@ExtOutputAttributes(key = "晶浆泵状态")
	private String crystalSlurryPumpStatus;

	/**
	 * 离心机状态
	 */
	@ExtOutputAttributes(key = "离心机状态")
	private String centrifugeStatus;

    /**
     * 数据入库时间
     */
    private LocalDateTime createTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
